using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace PowerTest
{
    public partial class frmLogin : Form
    {
        public frmLogin()
        {
            InitializeComponent();
        }

        private void btExit_Click(object sender, EventArgs e)
        {
            //this.Close();
            Application.Exit();
        }

        private void btOK_Click(object sender, EventArgs e)
        {
            //base.Visible = false;
            //new frmMain().Show();
            try
            {
                if (txtUser.Text == "")
                {
                    lblError.ForeColor = Color.Red;
                    lblError.Text = "Xin mời nhập thông tin tên truy cập";
                    txtUser.Focus();
                }
                else if (this.txtPass.Text == "")
                {
                    lblError.ForeColor = Color.Red;
                    lblError.Text = "Xin mời nhập thông tin mật khẩu";
                    txtPass.Focus();
                }
                else
                {
                    string User = txtUser.Text;//Func.MaHoa(Func.MaHoa(txtPass.Text + Func.MaHoa(txtUser.Text)));
                    string Pass = txtPass.Text;//Func.MaHoa(Func.MaHoa(txtUser.Text + Func.MaHoa(txtPass.Text)));
                    DataTable LoginSV = viewUserSVTableAdapter.GetDataByUserSV(User, Pass);
                    DataTable LoginGV = viewUserGVTableAdapter.GetDataByUserGV(User, Pass);

                    if (LoginSV.Rows.Count == 0 && LoginGV.Rows.Count == 0)
                    {
                        lblError.ForeColor = Color.Red;

                        lblError.Text = "Tên truy cập hoặc mật khẩu không hợp lệ\nTên và mật khẩu có phân biệt hoa thường";
                        txtPass.Text = "";
                        txtUser.Text = "";
                        txtUser.Focus();
                    }
                    else if (LoginGV.Rows.Count != 0)
                    {
                        DataRow LoginUser = LoginGV.Rows[0];
                        Func.maTruyCap = (string)LoginUser["maTruyCap"];
                        Func.tenTruyCap = (string)LoginUser["ho"] + " " + (string)LoginUser["dem"] + " " + (string)LoginUser["ten"];
                        Func.matKhau = (string)LoginUser["pass1"];
                        Func.phanQuyen = (string)LoginUser["maQuyen"];
                        base.Hide();
                        new frmMain().Show();
                    }
                    else
                    {
                        DataRow LoginUser = LoginSV.Rows[0];
                        Func.maTruyCap = (string)LoginUser["MSSV"];
                        Func.tenTruyCap = (string)LoginUser["ho"] + " " + (string)LoginUser["dem"] + " " + (string)LoginUser["ten"];
                        Func.matKhau = (string)LoginUser["pass"];
                        Func.phanQuyen = (string)LoginUser["maQuyen"];

                        base.Hide();
                        new frmMain().Show();
                    }
                }
            }
            catch
            {
                lblError.ForeColor = Color.Red;
                lblError.Text = "Không thể đăng nhập !\nChưa kết nối được tới cơ sở dữ liệu !";
            }
        }

        private void frmLogin_Load(object sender, EventArgs e)
        {
            try
            {
                this.viewUserSVTableAdapter.Fill(powerTestDataSet.viewUserSV);
                this.viewUserGVTableAdapter.Fill(powerTestDataSet.viewUserGV);
            }
            catch
            {
                lblError.ForeColor = Color.Red;
                lblError.Text = "Kết nối dữ liệu lỗi!";
            }
            txtUser.Focus();
        }

        int x, y;

        private void pb_MouseDown(object sender, MouseEventArgs e)
        {
            x = e.X;
            y = e.Y;
            Cursor.Current = Cursors.NoMove2D;
        }

        private void pb_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                Top += (e.Location.Y - y);
                Left += (e.Location.X - x);
            }
        }
    }
}